const util = require("util")
const fs = require("fs")
const path = require("path")
const compose = require("koa-compose")

function useMiddleware(app) {
    // // 1、同步中间件、洋葱模型测试
    // const one = (cxt, next) => {
    //     console.log("start one")
    //     next()
    //     console.log("end one")
    // }

    // const two = (cxt, next) => {
    //     console.log("start two")
    //     next()
    //     console.log("end two")
    // }

    // const three = (cxt, next) => {
    //     console.log("start three")
    //     next()
    //     console.log("end three")
    // }

    // // app.use(one)
    // // app.use(two)
    // // app.use(three)

    // // 2、合并中间件
    // app.use(compose([one, two, three]))


    // 3、异步中间件，使用 async
    app.use(async (ctx, next) => {
        const filePath = path.resolve(__dirname, "../public/index.html")
        // 3.1、指定编码格式：'utf-8'，就会直接渲染而不是下载文件
        const data = await util.promisify(fs.readFile)(filePath, 'utf-8')
        // 3.2、指定type为：html，也可以渲染页面而不是下载
        ctx.type = "html"
        ctx.body = data
        next()
    })

}



export default useMiddleware